<?php

/**
 * This is the model class for table "detalle".
 *
 * The followings are the available columns in table 'detalle':
 * @property integer $idDetalle
 * @property integer $receta
 * @property integer $tipo
 * @property string $esf_derecho
 * @property string $cil_derecho
 * @property string $eje_derecho
 * @property string $esf_izquierdo
 * @property string $cil_izquierdo
 * @property string $eje_izquierdo
 * @property integer $material
 * @property integer $color
 * @property integer $tratamiento
 * @property string $liquido
 * @property string $curva_base
 * @property integer $marca_LC
 * @property string $fecha_renovacion
 *
 * The followings are the available model relations:
 * @property Marcalc $marcaLC
 * @property TipoItem $tipo0
 * @property Receta $receta0
 * @property MaterialItem $material0
 * @property ColorMaterial $color0
 * @property TratamientoItem $tratamiento0
 */
class Detalle extends CActiveRecord
{
	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'optica_bd.detalle';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('receta, tipo', 'required'),
			array('receta, tipo, material, color, tratamiento, marca_LC', 'numerical', 'integerOnly'=>true),
			array('esf_derecho, cil_derecho, eje_derecho, esf_izquierdo, cil_izquierdo, eje_izquierdo', 'length', 'max'=>10),
			array('liquido', 'length', 'max'=>45),
			array('curva_base', 'length', 'max'=>50),
			array('fecha_renovacion', 'safe'),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('idDetalle, receta, tipo, esf_derecho, cil_derecho, eje_derecho, esf_izquierdo, cil_izquierdo, eje_izquierdo, material, color, tratamiento, liquido, curva_base, marca_LC, fecha_renovacion', 'safe', 'on'=>'search'),
		);
	}
      


	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'marcaLC' => array(self::BELONGS_TO, 'Marcalc', 'marca_LC'),
			'tipo0' => array(self::BELONGS_TO, 'TipoItem', 'tipo'),
			'receta0' => array(self::BELONGS_TO, 'Receta', 'receta'),
			'material0' => array(self::BELONGS_TO, 'MaterialItem', 'material'),
			'color0' => array(self::BELONGS_TO, 'ColorMaterial', 'color'),
			'tratamiento0' => array(self::BELONGS_TO, 'TratamientoItem', 'tratamiento'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'idDetalle' => 'Id Detalle',
			'receta' => 'Receta',
			'tipo' => 'Tipo',
			'esf_derecho' => 'Esf Derecho',
			'cil_derecho' => 'Cil Derecho',
			'eje_derecho' => 'Eje Derecho',
			'esf_izquierdo' => 'Esf Izquierdo',
			'cil_izquierdo' => 'Cil Izquierdo',
			'eje_izquierdo' => 'Eje Izquierdo',
			'material' => 'Material',
			'color' => 'Color',
			'tratamiento' => 'Tratamiento',
			'liquido' => 'Liquido',
			'curva_base' => 'Curva Base',
			'marca_LC' => 'Marca LC',
			'fecha_renovacion' => 'Fecha Renovacion',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('idDetalle',$this->idDetalle);
		$criteria->compare('receta',$this->receta);
		$criteria->compare('tipo',$this->tipo);
		$criteria->compare('esf_derecho',$this->esf_derecho,true);
		$criteria->compare('cil_derecho',$this->cil_derecho,true);
		$criteria->compare('eje_derecho',$this->eje_derecho,true);
		$criteria->compare('esf_izquierdo',$this->esf_izquierdo,true);
		$criteria->compare('cil_izquierdo',$this->cil_izquierdo,true);
		$criteria->compare('eje_izquierdo',$this->eje_izquierdo,true);
		$criteria->compare('material',$this->material);
		$criteria->compare('color',$this->color);
		$criteria->compare('tratamiento',$this->tratamiento);
		$criteria->compare('liquido',$this->liquido,true);
		$criteria->compare('curva_base',$this->curva_base,true);
		$criteria->compare('marca_LC',$this->marca_LC);
		$criteria->compare('fecha_renovacion',$this->fecha_renovacion,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return Detalle the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
}
